package cn.jcet.module.bus.controller;

import cn.hutool.core.date.DateUtil;
import cn.jcet.common.utils.AppFileUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("file")
public class FileController {


    /**
     * 上传图片
     * @param mf
     * @return
     */
    @PostMapping("uploadFile")
    public Map<String,Object> uploadFile(MultipartFile mf){

        //获取文件名称
        String filename = mf.getOriginalFilename();
        //根据文件名生成新的文件名
        String newName = AppFileUtils.createNewFileName(filename);
        //得到新的日期的字符串
        String dirName = DateUtil.format(new Date(), "yyyy-MM-dd");
        //构建文件夹
        File dirFile = new File(AppFileUtils.UPLOAD_PATH,dirName);
        //判断文件夹是否存在
        if(!dirFile.exists()){
            //不存在就创建
            dirFile.mkdirs();
        }
        //构建文件对象
        File file = new File(dirFile,newName+"_temp");
        //把mf里面的图片信息写入file
        try {
            mf.transferTo(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        Map<String,Object> map = new HashMap<>();
        map.put("path",dirName+"/"+newName+"_temp");
        return map;
    }

    /**
     * 查看图片
     * @param path
     * @return
     */
    @GetMapping("showImageByPath")
    public ResponseEntity<Object> shoeImageByPath(String path){
        return AppFileUtils.createResponseEntity(path);
    }
}
